Çàêðûòü îêíî         Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"

10.4. Oïècaíèe âxoäíûx òo÷eê.

10.4.1. Beêòopa ïpepûâaíèé.

Bxoäíûe òo÷êè IRQ, NMI, RESET ïpeäíaçía÷eíû äëÿ óêaçaíèÿ ïoëüçoâaòeëücêèx ïoäïpoãpaìì oápaáoòêè ïpepûâaíèé è ÿâëÿþòcÿ ïo cóùecòâó êoìaíäaìè ïepexoäa ïo ìoäèôèöèpóeìoìó ïoëüçoâaòeëeì aäpecó (X+1, X+2). Oíè âûíeceíû â OÇÓ äëÿ óäoácòâa oápaùeíèÿ.

Äëÿ ïepexâaòa IRQ-ïpepûâaíèé íeoáxoäèìo ïpeäócìoòpeòü äoïoëíèòeëüíóþ ïpoãpaììó, oòäeëüío oápaáaòûâaþùóþ ocòaíoâ ïo êoìaíäe BRK. Ee aäpec äoëæeí íaxoäèòücÿ â ÿ÷eéêax ¤FFFE-FFFF ècïoëüçóeìoão áëoêa ÏÇÓ. Ïpè paáoòe ïoä êoíòpoëeì AOK íeoáxoäèìocòè â íeé íeò, è äëÿ oápaáoòêè ïpo÷èx IRQ-ïpepûâaíèé äocòaòo÷ío ìoäèôèöèpoâaòü âeêòop IRQ.

Cëeäóeò èìeòü â âèäó, ÷òo ïpè âêëþ÷eííoì ía çaïècü ÏÇÓ ÷èòaeòcÿ cècòeìíûé ìoíèòop co câoeé cècòeìoé oápaáoòêè ïpepûâaíèé. Ýòó cèòóaöèþ cëeäóeò ècêëþ÷aòü ïpè ïpoãpaììèpoâaíèè, â cëó÷ae æe íeoáxoäèìocòè ècïoëüçoâaòü òó cècòeìó oápaáoòêè ïpepûâaíèé.

10.4.2. Ïoäïpoãpaììû ââoäa.

%LISTD

-STROBE - ââoä cèìâoëa áeç êópcopa.

Ïpocòoé oïpoc còpoáa â öèêëe äo íaæaòèÿ êëaâèøè. Bâeäeííûé cèìâoë ïepeêoäèpóeòcÿ TRANSL è ía ýêpaíe íe oòoápaæaeòcÿ.

Bûxoä: A=cèìâoë, cò.áèò=1,
       Y<¤0B,
       X íe ìeíÿeòcÿ.

-KEYIN - còaíäapòíûé ââoä cèìâoëa c âûäa÷eé êópcopa.

Bxoä: CURSOR (¤30) - cèìâoë, âûäaâaeìûé â êa÷ecòâe êópcopa.

Bo âpeìÿ oæèäaíèÿ ââoäa óâeëè÷èâaeòcÿ coäepæèìoe ÿ÷eeê RNDL è RNDH (cëó÷aéíoe 16-paçpÿäíoe ÷ècëo), è ía ýêpaíe opãaíèçóeòcÿ ìèãaþùèé êópcop: ÷epeäoâaíèe cèìâoëa â òeêóùeé ïoçèöèè c cèìâoëoì â ÿ÷eéêe CURSOR. Kópcop èìeeò òoò æe öâeò, ÷òo è cèìâoë. Bâeäeííûé cèìâoë ïepeêoäèpóeòcÿ TRANSL.

Bûxoä: A=cèìâoë, cò.áèò=1.
       Y=CH,
       X íe ìeíÿeòcÿ.

-RDKEY - ââoä c (âoçìoæío) íecòaíäapòíoé ïpoãpaììoé.

Ocóùecòâëÿeò ïepexoä ïo aäpecó, çaïècaííoìó â (KSWL, KSWH).

Bûxoä: êaê ó ýòoé ïoäïpoãpaììû (cì. òaêæe oïècaíèe KEYIN).

RDKEY1: ïpeäâapèòeëüíoe çaíeceíèe "_" â CURSOR.

RDKEY2: ïpeäâapèòeëüíoe çaíeceíèe "^" â CURSOR.

-RDCHAR - ââoä cèìâoëa c pacïoçíaâaíèeì peäaêòèpóþùèx cèìâoëoâ.

Opãaíèçóecÿ öèêë ââoäa äo íaæaòèÿ ëþáoão cèìâoëa, êpoìe "còpeëoê" è "PEÄ". Bâoä ýòèx cèìâoëoâ âëe÷eò èx íeìeäëeííûé âûâoä ÷epeç COUT (ò.e. ïepeìeùeíèe êópcopa). Haæaòèe "PEÄ" ìeíÿeò êópcop (ââoä âeäeòcÿ c ïoìoùüþ RDKEY1 èëè RDKEY2). Ëþáoé äpóãoé cèìâoë ïpeêpaùaeò öèêë è ía ýêpaí íe âûâoäèòcÿ.

Bûxoä: êaê ó RDKEY.

%ENDL

10.4.3. Ïoäïpoãpaììû âûâoäa.

B oïècûâaeìûx íèæe ïoäïpoãpaììax peãècòp X íe ècïoëüçóeòcÿ.

%LISTD

-COUT1 - còaíäapòíûé âûâoä cèìâoëa ía ýêpaí.

Bxoä: A=cèìâoë.

Ecëè cèìâoë íe óïpaâëÿþùèé, oí ïpocòo çaïècûâaeòcÿ â òeêóùóþ ïoçèöèþ ýêpaííoé ïaìÿòè, è ïoçèöèÿ cìeùaeòcÿ. Ecëè cèìâoë èìeeò ôóíêöèoíaëüíóþ íaãpóçêó - ocóùecòâëeíèe ee (â ocíoâíoì, ôóíêöèoíaëüíûì câoécòâaì cèìâoëa cooòâeòcòâóþò oïècaííûe íèæe ïoäïpoãpaììû).

Bûxoä: âce peãècòpû coxpaíÿþòcÿ, P íacòpaèâaþòcÿ ïo A.

-COUT - âûâoä cèìâoëa c (âoçìoæío) íecòaíäapòíoé ïoäïpoãpaììoé.

Ocóùecòâëÿeò ïepexoä ïo aäpecó, çaïècaííoìó â (CSWL, CSWH).

Èíòepôeéc ýòoé ïoäïpoãpaììû äoëæeí áûòü òaêèì æe, êaê ó COUT1.

-PRBYTE - âûâoä áaéòa.

Bxoä: A=áaéò.

Ïepeäaííûé áaéò âûâoäèòcÿ ÷epeç COUT êaê øecòíaäöaòepè÷íoe ÷ècëo (äâe öèôpû).

Bûxoä: A íe coxpaíÿeòcÿ.

Äoïoëíèòeëüíûé âxoä:

PRHEX: âûâoä ìëaäøeé ïoëoâèíû áaéòa êaê øecòíaäöaòepè÷íoé öèôpû.

-CROUT - ïepeâoä còpoêè.

Bûâoäèòcÿ cèìâoë "óïp-M" (ïepeâoä còpoêè) ÷epeç COUT. Ôaêòè÷ecêè cpaáaòûâaeò ïoäïpoãpaììa CR.

CROUT1: ïpeäâapèòeëüíaÿ o÷ècòêa ocòaòêa òeêóùeé còpoêè ïpoáeëaìè òeêóùeão öâeòa.

%ENDL

10.4.4. Ïoäïpoãpaììû óïpaâëeíèÿ ýêpaíoì.

B ýòèx ïoäïpoãpaììax peãècòp X òaêæe íe ècïoëüçóeòcÿ.

%LISTL

-BS, ADVANCE, UP, LF - cäâèã êópcopa ía oäíó ïoçèöèþ â ïpeäeëax oêía; ecëè ïoòpeáóeòcÿ - c ïepexoäoì ía äpóãóþ còpoêó, ïoäâèæêoé ýêpaía.

-CR - ïepexoä ê ía÷aëó íoâoé còpoêè; ecëè â KBD íaxoäèòcÿ íeïpo÷èòaííûé ïpoáeë - çaäepæêa äo íaæaòèÿ ëþáoé êëaâèøè.

-SCROLL - ïoäâèæêa ýêpaía ía còpoêó ââepx; âepxíÿÿ còpoêa ïpè ýòoì ïpoïaäaeò.

-HOME - ïepeìeùeíèe êópcopa â ëeâûé âepxíèé óãoë oêía è ïepexoä ía CLREOP.

-CLREOP - o÷ècòêa (çaïoëíeíèe ïpoáeëaìè òeêóùeão öâeòa) ýêpaía âíèç è âëeâo oò êópcopa.

CLREOP1: òo æe, ío ía âxoä ïoäaþòcÿ:
        A=còpoêa (CV),
        Y=ïoçèöèÿ (CH).

-CLREOL - o÷ècòêa ocòaòêa còpoêè.

CLEOLZ: òo æe, ío ïoçèöèÿ ïepeäaeòcÿ â Y.

CLEOLZ1: äoïoëíèòeëüío, öâeòíocòü ïepeäaeòcÿ â A.

-DELCHAR, INSCHAR - cäâèã ocòaòêa òeêóùeé còpoêè âëeâo (âïpaâo) c óíè÷òoæeíèeì òeêóùeão (ïocëeäíeão) cèìâoëa; â êoíöe còpoêè (â òeêóùeé ïoçèöèè) ïoÿâëÿeòcÿ ïpoáeë òeêóùeão öâeòa.

DELCH32, INSCH32, DELCH64, INSCH64: òo æe äëÿ êaæäoão èç peæèìoâ, ïpè÷eì ía âxoäe

     Y=ïoçèöèÿ (CH)
     A=öâeòíocòü (INVFLG).

-Ïoäïpoãpaììû èçìeìeíèÿ òeêóùeé öâeòíocòè (ìeíÿþò cooòâeòcòâóþùèe áèòû â INVFLG):

SETRED, SETGRN, SETYEL, SETBLUE, SETVIOL, SETNAVY, SETWHIT: ócòaíoâêa oäíoão èç 7 öâeòoâ (êpoìe ÷epíoão).

SETINV, SETNORM, SETFLASH: ócòaíoâêa ôoía (èíâepcíoão, íopìaëüíoão, ìèãaþùeão).

SETCOL: ócòaíoâêa öâeòa, ïepeäaííoão â A.

-SETTXT - ïoêaç ýêpaííoé ïaìÿòè â òeêóùeì òeêcòoâoì peæèìe (oïpeäeëÿeòcÿ ïo còapøeìó áèòó INVFLG).

-INIT - ócòaíoâêa còaíäapòíoão oêía âo âecü ýêpaí:

WNDTOP = 0, WNDLFT = 0, WNDWDTH = ¤40, WNDBTM = CV + 1 = ¤20.

SETWND: òo æe, ío çía÷eíèe WNDTOP ïepeäaeòcÿ â A.

-BASCALC - âû÷ècëeíèe aäpeca ía÷aëa còpoêè, íoìep êoòopoé ïepeäaeòcÿ â A:

        (BASL, BASH) = ÁA + A * 64

-VTAB - âû÷ècëeíèe aäpeca ía÷aëa còpoêè \oêía\:

        (BASL, BASH) = BASCALC(CV) + CH

VTABZ: òo æe, ío íoìep còpoêè ïepeäaeòcÿ â A.

TABV: äoïoëíèòeëüío, íoìep còpoêè çaïoìèíaeòcÿ â CV.

%ENDL

10.4.5. Ïpo÷èe ïoäïpoãpaììû.

%LISTD

-WAIT - ïaóça äëèòeëüíocòüþ â 512*A**2 + 27*A/2 + 13 ìêceê. Peãècòpû X,Y íe ècïoëüçóþòcÿ; ía âûxoäe A=0.

-BELL - çâóêoâoé cèãíaë (çâoíoê, 1 êÃö, 0.1 ceê). Oáíóëÿeò peãècòp Y; X íe ìeíÿeòcÿ.

%ENDL

Çàêðûòü îêíî         Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"